<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 链式操作。就是可以点完了继续点
        // const arr = [1, 2, 3]
        // arr.map(el => el * 2).map(el => el * 3).filter(el => el >= 3).map(el => el *3)

        // 为什么上面可以一直点下去？因为调用每个map或者filter方法之后，返回值又是一个数组，所以可以链式操作

        // Q: Promise也是可以链式操作的？---> 每一个promise调用.then()或者.catch之后，又返回一个promsie对象

        const p = new Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve('1')
            }, 1000)
        })
        console.log(p)

       p.then(res => {
            console.log(`res:${res}`)
            // 过两秒之后，打印2 
            return new Promise((resolve, reject) => {
                setTimeout(()=>{
                    resolve('2')
                }, 2000)
            })
        })
        .then(res => {
            console.log(`res:${res}`)
            // 过三秒之后，打印，3
            return new Promise((resolve, reject) => {
                setTimeout(()=>{
                    resolve('3')
                }, 3000)
            })
        })
        .then(res => {
            console.log(res)
        })


        // 每一个点then之后，又返回了一个promise对象，
        // 然后呢，这个promise对象又有.then()方法



    </script>
</body>
</html>